properties:
  retentionDays:
    description: Сколько дней хранить данные.
  storageClass:
    description: |
      Имя StorageClass'а, который предполагается использовать.

      Если не указано, используется StorageClass существующей PVC Prometheus, а если PVC пока нет, используется или [глобальный StorageClass](../../deckhouse-configure-global.html#parameters-storageclass), или `global.discovery.defaultStorageClass`, а если и их нет, данные сохраняются в `emptyDir`.

      `false` — принудительное использование `emptyDir`. Удалить старый PVC и рестартануть под придется вручную.

      **ОСТОРОЖНО!** При указании этой опции в значение, отличное от текущего (из существующей PVC), диск Prometheus будет перезаказан, а все данные удалены.
  longtermStorageClass:
    description: |
      Имя StorageClass'а, который предполагается использовать для Longterm Prometheus.

      Если не указано, используется StorageClass существующей PVC Longterm Prometheus, а если PVC пока нет, используется или [глобальный StorageClass](../../deckhouse-configure-global.html#parameters-storageclass), или `global.discovery.defaultStorageClass`, а если и их нет, данные сохраняются в `emptyDir`.

      **ОСТОРОЖНО!** При указании этой опции в значение, отличное от текущего (из существующей PVC), диск Longterm Prometheus будет перезаказан, а все данные удалены.
  longtermRetentionDays:
    description: |
      Сколько дней хранить данные в Longterm Prometheus.
      Если указать 0, Longterm Prometheus не будет запущен в кластере.
  auth:
    description: Опции, связанные с аутентификацией или авторизацией в приложении.
    properties:
      externalAuthentication:
        description: |
          Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress [external-auth](https://kubernetes.github.io/ingress-nginx/examples/auth/external-auth/), работающий на основе модуля NGINX [auth_request](http://nginx.org/en/docs/http/ngx_http_auth_request_module.html).

          > Внешняя аутентификация включается автоматически, если включен модуль [user-authn](https://deckhouse.io/documentation/v1/modules/150-user-authn/).
        properties:
          authURL:
            description: URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
          authSignInURL:
            description: URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
      allowedUserGroups:
        description: |
          Массив групп, пользователям которых позволен доступ в Grafana и Prometheus.

          Используется, если включен модуль [user-authn](https://deckhouse.ru/documentation/v1/modules/150-user-authn/) или параметр `externalAuthentication`.

          **Внимание!** При использовании совместно с модулем [user-authn](https://deckhouse.ru/documentation/v1/modules/150-user-authn/) необходимо также добавить разрешенные группы в соответствующее поле в [настройках](https://deckhouse.ru/documentation/v1/modules/150-user-authn/cr.html#dexprovider) DexProvider.
      whitelistSourceRanges:
        description: Массив адресов в формате CIDR, которым разрешено проходить авторизацию в Grafana и Prometheus.
      satisfyAny:
        description: |
          Разрешает пройти только одну из аутентификаций.

          В комбинации с опцией `whitelistSourceRanges` позволяет считать авторизованными всех пользователей из указанных сетей без ввода логина и пароля.
  grafana:
    description: Настройки для инсталляции Grafana.
    properties:
      useDarkTheme:
        description: Использование по умолчанию пользовательской темной темы.
      customPlugins:
        description: |
          Список дополнительных [plug-in'ов](https://grafana.com/grafana/plugins) для Grafana.

          Необходимо указать в качестве значения список имен плагинов из официального репозитория.

          Пример добавления plug-in'ов для возможности указания clickhouse в качестве datasource и панели flow-chart:

          ```yaml
          grafana:
            customPlugins:
            - agenty-flowcharting-panel
            - vertamedia-clickhouse-datasource
          ```
  ingressClass:
    description: |
      Класс Ingress-контроллера, который используется для Grafana/Prometheus.

      Опциональный параметр, по умолчанию используется глобальное значение `modules.ingressClass`.
  externalLabels:
    description: |
      Набор внешних меток для маркировки метрик.

      Допускается использование значений переменных окружения контейнера `config-reloader` в качестве значений меток,
      например:
      * `HOSTNAME`/`POD_NAME` — содержит наименование пода (например, `prometheus-main-0`, `prometheus-main-1` и т. д.);
      * `SHARD` — содержит номер [шарда](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/shards-and-replicas.md).
  https:
    description: |
      Тип сертификата, используемого для Grafana/Prometheus.

      При использовании этого параметра полностью переопределяются глобальные настройки `global.modules.https`.
    properties:
      mode:
        description: |
          Режим работы HTTPS:
          - `Disabled` — Grafana/Prometheus будут работать только по HTTP;
          - `CertManager` — Grafana/Prometheus будут работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре `certManager.clusterIssuerName`.
          - `CustomCertificate` — Grafana/Prometheus будут работать по HTTPS, используя сертификат из namespace `d8-system`.
          - `OnlyInURI` — Grafana/Prometheus будут работать по HTTP (подразумевая, что перед ними стоит внешний балансировщик, который терминирует HTTPS) и все ссылки в [user-authn](https://deckhouse.ru/documentation/v1/modules/150-user-authn/) будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.
      certManager:
        properties:
          clusterIssuerName:
            description: |
              ClusterIssuer, используемый для Grafana/Prometheus.

              Доступны `letsencrypt`, `letsencrypt-staging`, `selfsigned`, но вы можете определить свои.
      customCertificate:
        properties:
          secretName:
            description: |
              Имя Secret'а в namespace `d8-system`, который будет использоваться для Grafana/Prometheus.

              Secret должен быть в формате [kubernetes.io/tls](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#tls-secrets).
  vpa:
    description: |
      Настройки VPA для подов.
    properties:
      maxCPU:
        description: |
          Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests) для подов основного Prometheus.

          Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук `detect_vpa_max` модуля.
      maxMemory:
        description: |
          Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests) для подов основного Prometheus..

          Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук `detect_vpa_max` модуля.
      longtermMaxCPU:
        description: |
          Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests) для подов Longterm Prometheus.

          Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук `detect_vpa_max` модуля.
      longtermMaxMemory:
        description: |
          Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests) для подов Longterm Prometheus.

          Значение по умолчанию подбирается автоматически, исходя из максимального количества подов, которое можно создать в кластере при текущем количестве узлов и их настройках. Подробнее см. хук `detect_vpa_max` модуля.
      updateMode:
        description: |
          Режим работы VPA.
  highAvailability:
    description: |
      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. [Подробнее](../../deckhouse-configure-global.html#параметры) про режим отказоустойчивости.
  scrapeInterval:
    description: |
      Как часто Prometheus должен собирать метрики с target'ов.

      Evaluation Interval всегда равен `scrapeInterval`.
  longtermScrapeInterval:
    description: |
      Как часто Longterm Prometheus должен собирать себе «снимок» данных из основного Prometheus.
  nodeSelector:
    description: |
      Структура, аналогичная `spec.nodeSelector` пода Kubernetes.

      Если ничего не указано или указано `false`, будет [использоваться автоматика](https://deckhouse.ru/documentation/v1/#выделение-узлов-под-определенный-вид-нагрузки).
  longtermNodeSelector:
    description: |
      Структура, аналогичная `spec.nodeSelector` пода Kubernetes.

      Если ничего не указано или указано `false`, будет [использоваться автоматика](https://deckhouse.ru/documentation/v1/#выделение-узлов-под-определенный-вид-нагрузки).
  tolerations:
    type: array
    description: |
      Структура, аналогичная `spec.tolerations` пода Kubernetes.

      Если ничего не указано или указано `false`, будет [использоваться автоматика](https://deckhouse.ru/documentation/v1/#выделение-узлов-под-определенный-вид-нагрузки).
  longtermTolerations:
    type: array
    description: |
      Структура, аналогичная `spec.tolerations` пода Kubernetes.

      Если ничего не указано или указано `false`, будет [использоваться автоматика](https://deckhouse.ru/documentation/v1/#выделение-узлов-под-определенный-вид-нагрузки).
  mainMaxDiskSizeGigabytes:
    description: |
      Устарел и будет удален. Ни на что не влияет.
      Максимальный размер в гигабайтах, до которого автоматически может ресайзиться диск Prometheus.
  longtermMaxDiskSizeGigabytes:
    description: |
      Устарел и будет удален. Ни на что не влияет.
      Максимальный размер в гигабайтах, до которого автоматически может ресайзиться диск Longterm Prometheus.
